从 福利哥_表单 导入 〇福利哥表单
从 无敌表单 导入 〇字符串字段, 爻验证错误
从 无敌表单.验证器 导入 长度, 电子邮箱, 等于

从 问答.模型 导入 〇邮箱验证模型, 〇用户模型

类 〇注册表单(〇福利哥表单):
    用户名 = 〇字符串字段(验证器々=[长度(最短=2, 最长=20)])
    电子邮箱 = 〇字符串字段(验证器々=[电子邮箱()])
    验证码 = 〇字符串字段(验证器々=[长度(最短=4, 最长=4)])
    密码 = 〇字符串字段(验证器々=[长度(最短=6, 最长=20)])
    确认密码 = 〇字符串字段(验证器々=[等于('密码')])

    套路 检查验证码(分身, 字段):
        验证码 = 字段.数据
        电子邮箱 = 分身.电子邮箱.数据
        记录 = 〇邮箱验证模型.查询.筛选_依据(电子邮箱=电子邮箱).第一条()
        如果 非 记录 或 记录.验证码.小写() != 验证码.小写():
            报 爻验证错误('验证码错误')
    
    套路 检查电子邮箱(分身, 字段):
        邮箱 = 字段.数据
        记录 = 〇用户模型.查询.筛选_依据(电子邮箱=邮箱).第一条()
        如果 记录:
            报 爻验证错误('邮箱已经存在')

类 〇登录表单(〇福利哥表单):
    电子邮箱 = 〇字符串字段(验证器々=[电子邮箱()])
    密码 = 〇字符串字段(验证器々=[长度(最短=6, 最长=20)])

类 〇问答表单(〇福利哥表单):
    标题 = 〇字符串字段(验证器々=[长度(最短=3, 最长=100)])
    内容 = 〇字符串字段(验证器々=[长度(最短=5)])

类 〇评论表单(〇福利哥表单):
    内容 = 〇字符串字段(验证器々=[长度(最短=1)])